<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
<script>
  const arr = ['a', 'b', 'c']
  const arr1= []


  Array.prototype.myForEach = function (fn) {
    console.log(this)
  //  内部调用fn的时候，需要传递的第一个参数就是数组成员
  //  遍历数组，把数组成员通过调用fn传递出去
  //   this 谁调用就是谁
    for (let i = 0; i < this.length; i ++) {
    //  拿到数组成员
    //   this[i]
      fn(this[i], i, this)
    }
  }

  Array.prototype.myMap = function (fn) {
    const arr = []
    //  内部调用fn的时候，需要传递的第一个参数就是数组成员
    //  遍历数组，把数组成员通过调用fn传递出去
    //   this 谁调用就是谁
    for (let i = 0; i < this.length; i ++) {
      //  拿到数组成员
      //   this[i]
      const res = fn(this[i], i, this)
      arr.push(res)
    }

    return arr
  }
  console.log(arr)

  const res = arr.map((item, index, arr) => {
    // return item + '黑马'
  })
  console.log(res)

  // console.log(res) // []
  //
  // arr.forEach((item, index, arr) => {
  //   console.log(item)
  //   console.log(index)
  //   console.log(arr)
  // })
  //
  //
  // arr.myForEach((item, index, arr) => {
  //   // 数组的每一个成员
  //   console.log(item)
  // })
  //
  // arr1.forEach()
</script>
</body>
</html>
